// 使用axios请求接口
import axios from 'axios'

// 创建请求对象  instance 也是一个经过配置之后的axios对象
const instance = axios.create({
  // baseURL: 'http://localhost:8090',// 接口基础路径
  baseURL: '/api',
  timeout: 3000, // 请求超时时间
})

// 设置请求拦截器
instance.interceptors.request.use((config) => {
  console.log(config, 'config')
  // config.headers['token'] = '123123'
  return config  // 这里的config参数包含的是所有的请求信息,注意:这里的config一定要return
  // 经常的操作就是携带token值
})

// 设置响应拦截器,所有响应之后的数据都会经过相应拦截器,可以在这里对数据进行进一步的处理,然后返回给客户端,还可以在这里对响应错误信息做统一的处理,注意:无论如何都需要对响应的数据进行返回,否则就不会走到客户端
instance.interceptors.response.use((response) => {
  // 响应成功了,所有响应的数据参数都在存储在了参数response,可以在这里对数据进行进一步的处理
  // console.log(response, 'response')
  return response.data
}, (error) => {
  // 如果响应失败了,错误信息就会进行这个回调函数.可以在这里对错误信息进行统一处理
  // 获取可以在这里对响应状态码 200 304 403 404 500
  return Promise.reject(error)
})

// 将请求对象抛出
export default instance;